#ifndef REQUEST_CLIENT_HH
# define REQUEST_CLIENT_HH

# include <math/vector.hh>
# include <request/request.hh>

# include "../display/bounding.hh"

class ConnectionClient: public Connection
{
public:
  ConnectionClient (const std::string& data);
  virtual ~ConnectionClient () {}

  const std::string& msg () const { return msg_; }

protected:
  std::string msg_;
};

class GetObjectClient: public GetObject
{
public:
  GetObjectClient (const std::string& data);
  virtual ~GetObjectClient () {}

  int meshid () const { return meshid_; }
  const Vector3d& angle () const { return angle_; }
  const Vector3f& pos () const { return pos_; }
  Bounding* bounding () const { return bounding_; }

protected:
  int meshid_;
  Bounding* bounding_;
  Vector3d angle_;
  Vector3f pos_;
};

class AskMapClient: public AskMap
{
public:
  AskMapClient (const std::string& data);

  int size () const { return size_; }
protected:
  int size_;
};

#endif /// !REQUEST_CLIENT_HH
